/*
 * SecundaryKey.h
 *
 *  Created on: 13/10/2009
 *      Author: andres
 */

#ifndef SECONDARYKEY_H_
#define SECONDARYKEY_H_

/*
 *
 */
#include "Key.h"
#include <string>

class SecondaryKey: public Key {
	public:
	/**
	  * GetKey
	  *
	  * A partir del datoSerializado devuelve un puntero al key
	  * e indica su tamanio en tamanio
	  *
	  * @author andres
	  *
	  * @param datoSerializado puntero al dato serializado
	  *
	  * @param int aca se pone el tamanio del key devuelto
	  *
	  * @return puntero al key
	  *
	  */
	char* GetKey(char* datoSerializado, int &tamanio)=0;

	/**
	  * EsIndiceSecundarioQueIndexa
	  *
	  * Este metodo es para saber si este keySecundario indexa el prametro dado
	  *
	  * @author andres
	  *
	  * @param std::string Nombre del parametro que se busca
	  *
	  * @return bool si el indice Indexa ese parametro devuelve true
	  *
	  */
	virtual bool EsIndiceSecundarioQueIndexa(std::string parametro)=0;

	/**
	  * GetTamanio
	  *
	  * devuelve el tamanio maximo de la clave
	  *
	  * @author andres
	  *
	  * @return int tamaño maximo de la clave
	  *
	  */
	virtual int GetTamanio()=0;
};

#endif /* SECONDARYKEY_H_ */
